package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 集合通用迭代方式
 public interface Iterable  {
 Iterator  iterator(); //返回一个迭代器

 }
 public interface Collection extends Iterable{

 }
 public interface Iterator{
 boolean hasNext(); //判断容器中是否存在下一个元素
 Object  next();//取出下一个元素
 void remove();//移除当前元素
 }
 */
public class CollectionDemo04 {
    public static void main(String[] args) {
        //method01();
        //method02();
        Collection c = new ArrayList();
        c.add("李磊");
        c.add("张三");
        c.add("老王");

        for (Iterator iterator = c.iterator();iterator.hasNext(); ) {
            System.out.println(iterator.next());
        }
    }

    private static void method02() {
        Collection c = new ArrayList();
        c.add("李磊");
        c.add("张三");
        c.add("老王");

        Iterator iterator = c.iterator();
        //while循环
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }

    private static void method01() {
        Collection c = new ArrayList();
        c.add("李磊");
        c.add("张三");
        c.add("老王");
        System.out.println(c);

        //1.先获取一个通用的迭代器对象
        Iterator iterator = c.iterator();

        //2.利用迭代器中的方法
        System.out.println(iterator.hasNext());//判断迭代器中是否含有下一个元素(利用指针,一开始指针指向集合上方,调用该方法后,指针向下移动) 李磊 true
        System.out.println(iterator.next());//李磊

        System.out.println(iterator.hasNext());//判断迭代器中是否含有下一个元素 张三 true
        System.out.println(iterator.next());//张三

        System.out.println(iterator.hasNext());//判断迭代器中是否含有下一个元素 老王 true
        System.out.println(iterator.next());//老王

        System.out.println(iterator.hasNext());
        System.out.println(iterator.next());
    }
}
